#ifndef _INPUT_PLAYER_H_
#define _INPUT_PLAYER_H_

#include "GameComponentTemplate.h"
#include "CInput.h"

#include "TextOutput.h"

#include "Ogre.h"
using namespace Ogre;

class CInputPlayerTemplate : public GameComponentTemplate {
public:

	//static Ogre::Vector3 Position;
	
	CInputPlayerTemplate();
	~CInputPlayerTemplate();

	virtual const comp_id_type& componentID() const {
		return mComponentID;
	}
	virtual const comp_id_type& familyID() const {
		return mFamilyID;
	}

	virtual GameComponent *makeComponent();

private:
	static comp_id_type mComponentID;
	static comp_id_type mFamilyID;
};

class CInputPlayer : public CInput {
public:
	
	static SceneNode *cameraNode;
	static SceneNode *cameraYawNode;
	static SceneNode *cameraPitchNode;
	static SceneNode *cameraRollNode;

	CInputPlayer();
	CInputPlayer(CInputPlayerTemplate* ct);
	
	~CInputPlayer();

	void update();
	void setup();

	virtual const comp_id_type& familyID() const { return mFamilyID; }
	virtual const comp_id_type& componentID() const { return mComponentID; }
private:
	static comp_id_type mFamilyID;
	static comp_id_type mComponentID;
	static OgreText *debug;
};

#endif
